#pragma once

#include "funpl.h"
#include "ast.h"

namespace funpl
{

namespace ast
{

struct declaration;

/// Namespace node.
struct namespace_ : public node
{
	util::const_char_range name;

	typedef std::pair<util::const_char_range, declaration*> element;
	typedef std::vector<element> element_vector;
	element_vector elements;

	/// Constructor.
	namespace_(node *parent = nullptr,
		const util::const_char_range &name = util::empty_const_char_range())
			: node(node_type::namespace_, parent),
			name(name) { }
};

} // namespace

} // namespace